<template>
	<view>
		<!-- <view class="user-id">
			<text>{{customId}}</text>
		</view> -->
		<view class="content" @touchstart="hideDrawer">
			<scroll-view class="msg-list" scroll-y="true" :scroll-with-animation="scrollAnimation" :scroll-top="scrollTop" 
			 :refresher-enabled="true" :refresher-triggered="triggered" :refresher-threshold="50" @refresherrefresh="pullrefresh" @refresherpulling="pullrefresh"
			 @refresherrestore="refresherrestore" @refresherabort="refresherabort"
			 :scroll-into-view="scrollToView" @scrolltoupper="loadHistory" upper-threshold="50">
				<view class="person-btn" v-if="!person" @click="personEnter"><text>咨询人工客服</text></view>
				<view class="pull-tip" v-if="person && pullTip"><text>下拉获取历史记录</text></view>
				<!-- 加载历史数据waitingUI -->
				<view class="loading" v-if="isHistoryLoading">
					<view class="spinner">
						<view class="rect1"></view>
						<view class="rect2"></view>
						<view class="rect3"></view>
						<view class="rect4"></view>
						<view class="rect5"></view>
					</view>
				</view>
				<view v-if="msgList.length">
					<view class="row" v-for="(row,index) in msgList" :key="index" :id="'msg'+row.msg.id">
						<!-- 系统消息 -->
						<block v-if="row.type=='system'">
							<view class="system">
								<!-- 文字消息 -->
								<view v-if="row.msg.type=='text'" class="text">
									{{row.msg.content.text}}
								</view>
							</view>
						</block>
						<!-- 用户消息 -->
						<block v-if="row.type=='user'">
							<!-- 自己发出的消息 -->
							<view class="my" v-if="row.msg.userinfo.uid == customId">
								<!-- 左-消息 -->
								<view class="left">
									<!-- 文字消息 -->
									<view v-if="row.msg.type=='text'" class="bubble">
										<rich-text :nodes="row.msg.content.text"></rich-text>
									</view>
									<!-- 语言消息 -->
									<view v-if="row.msg.type=='voice'" class="bubble voice" @tap="playVoice(row.msg)" :class="playMsgid == row.msg.id?'play':''">
										<view class="length">{{row.msg.content.length}}</view>
										<view class="icon my-voice"></view>
									</view>
									<!-- 图片消息 -->
									<view v-if="row.msg.type=='img'" class="bubble img" @tap="showPic(row.msg)">
										<image :src="row.msg.content.url" :style="{'width': row.msg.content.w+'px','height': row.msg.content.h+'px'}"></image>

									</view>
								</view>
								<!-- 右-头像 -->
								<view class="right">
									<image src="/static/img/face.jpg"></image>
								</view>
							</view>
							<!-- 别人发出的消息 -->
							<view class="other" v-if="row.msg.userinfo.uid != customId">
								<!-- 左-头像 -->
								<view class="left">
									<image src="/static/img/im/face/face_2.jpg"></image>
								</view>
								<!-- 右-用户名称-时间-消息 -->
								<view class="right">
									<view class="username">
										<view class="name">{{row.msg.userinfo.username}}</view>
										<view class="time">{{row.msg.time | timestamp}}</view>
									</view>
									<!-- 文字消息 -->
									<view v-if="row.msg.type=='text'" class="bubble">
										<rich-text :nodes="row.msg.content.text"></rich-text>
									</view>
									<!-- 语音消息 -->
									<view v-if="row.msg.type=='voice'" class="bubble voice" @tap="playVoice(row.msg)" :class="playMsgid == row.msg.id?'play':''">
										<view class="icon other-voice"></view>
										<view class="length">{{row.msg.content.length}}</view>
									</view>
									<!-- 图片消息 -->
									<view v-if="row.msg.type=='img'" class="bubble img" @tap="showPic(row.msg)">
										<image :src="row.msg.content.url" :style="{'width': row.msg.content.w+'px','height': row.msg.content.h+'px'}"></image>

									</view>
								</view>
							</view>
						</block>
					</view>
				</view>

			</scroll-view>
		</view>
		<!-- 抽屉栏 fixed定位 top 100% -->
		<view class="popup-layer" :class="popupLayerClass" @touchmove.stop.prevent="discard">
			<!-- 表情 -->
			<swiper class="emoji-swiper" :class="{hidden:hideEmoji}" indicator-dots="true" duration="150">
				<swiper-item v-for="(page,pid) in emojiList" :key="pid">
					<view v-for="(em,eid) in page" :key="eid" @tap="addEmoji(em)">
						<image mode="widthFix" :src="'/static/img/emoji/'+em.url"></image>
					</view>
				</swiper-item>
			</swiper>
			<!-- 更多功能 相册-拍照 -->
			<view class="more-layer" :class="{hidden:hideMore}">
				<view class="list">
					<view class="box" @tap="chooseImage">
						<view class="icon tupian2"></view>
					</view>
					<view class="box" @tap="camera">
						<view class="icon paizhao"></view>
					</view>
					<view class="box">
						<input class="uni-input" type="number" placeholder="自定id" ref="idInput" @blur="setId()" :disabled="idInput" />
					</view>
					<view class="box">
						<input class="uni-input" type="number" placeholder="超时ms" ref="timeoutInput" @blur="setTimeout" />
					</view>
				</view>
			</view>
		</view>
		<!-- 底部输入栏 fixed定位 bottom 0 -->
		<view class="input-box" :class="popupLayerClass" @touchmove.stop.prevent="discard">
			
		<!-- 	<view class="input-config">
				 <view class="config-item">服务评价</view>
				 <view class="config-item">配置1</view>
				 <view class="config-item">配置2</view>
			</view> -->
			<view class="input-item">	
			<!-- H5下不能录音，输入栏布局改动一下 -->
			<!--  -->
			<view class="voice">
				<view class="icon" :class="isVoice?'jianpan':'yuyin'" @tap="switchVoice"></view>
			</view>
			<!-- -->
			<view class="textbox">
				<!-- #ifdef H5 -->
				<view class="voice-mode" :class="[isVoice?'':'hidden',recording?'recording':'']" @touchstart="h5VoiceBegin"
				 @touchmove.stop.prevent="voiceIng" @touchend="h5VoiceEnd" @touchcancel="voiceCancel">{{voiceTis}}</view>
				<!-- #endif -->
			
				<!-- #ifndef H5 -->
				<view class="voice-mode" :class="[isVoice?'':'hidden',recording?'recording':'']" @touchstart="voiceBegin"
				 @touchmove.stop.prevent="voiceIng" @touchend="voiceEnd" @touchcancel="voiceCancel">{{voiceTis}}</view>
				<!-- #endif -->
				<view class="text-mode" :class="isVoice?'hidden':''">
					<view class="box">
						<textarea auto-height="true" v-model="textMsg" @focus="textareaFocus" />
						</view>
					<view class="em" @tap="chooseEmoji">
						<view class="icon biaoqing"></view>
					</view>
				</view>
			</view>
			<!--  -->
			<view class="more" @tap="showMore">
				<view class="icon add"></view>
			</view>
			<!--  -->
			<view class="send" :class="isVoice?'hidden':''" @tap="sendText">
				<view class="btn">发送</view>
			</view>
			</view>
	
		</view>

		<!-- 录音UI效果 -->
		<view class="record" :class="recording?'':'hidden'">
			<view class="ing" :class="willStop?'hidden':''"><view class="icon luyin2" ></view></view>
			<view class="cancel" :class="willStop?'':'hidden'"><view class="icon chehui" ></view></view>
			<view class="tis" :class="willStop?'change':''">{{recordTis}}</view>
		</view>
		<view>
			<uni-popup ref="popup" type="message" :maskClick="false">
			 <!--   <uni-popup-dialog type="warn" content="由于您长时间未响应，连接暂时断开，如需服务，请重新打开页面."  :before-close="false" @close="popupClose" @confirm="popupConfirm">
					
				 </uni-popup-dialog> -->
				  <uni-popup-message type="info" message="由于您长时间未响应，连接暂时断开，如需服务，请返回重新打开页面." :duration="0"></uni-popup-message>
			</uni-popup>
		</view>
	</view>
</template>
<script>
	import { record,oldRecord,stopRecord,recordFile,recordUrl } from '../../static/HM-chat/record.js'
    import {wsSend,messageBody,randomeId,deepClone,msgBody,recoderTimeformat} from '../../utils/index.js'
	import  mixin from './mixin.js'
	import {emojiList,onlineEmoji} from './model.js'
	import {queryChat,netUploadFile,login} from '@/api/index.js'
	import uniPopup from '@/components/uni-popup/uni-popup.vue';
	import uniPopupMessage from '@/components/uni-popup/uni-popup-message.vue';
	import uniPopupDialog from '@/components/uni-popup/uni-popup-dialog.vue';

	export default {
		components:{
			uniPopup,
			uniPopupMessage,
			uniPopupDialog
		},
		mixins: [mixin],
		data() {
			return {
				idInput:false,
				//文字消息
				textMsg:'',
				//消息列表
				isHistoryLoading:false,
				scrollAnimation:false,
				scrollTop:0,
				scrollToView:'',
				msgList:[],
				msgImgList:[],
				showLoading:false,
				
				//录音相关参数
				// #ifndef H5
				//H5不能录音
				RECORDER:uni.getRecorderManager(),
				// #endif
				isVoice:false,
				voiceTis:'按住 说话',
				recordTis:"手指上滑 取消发送",
				recording:false,
				willStop:false,
				initPoint:{identifier:0,Y:0},
				recordTimer:null,
				recordLength:0,
				
				//播放语音相关参数
				AUDIO:uni.createInnerAudioContext(),
				playMsgid:null,
				VoiceTimer:null,
				// 抽屉参数
				popupLayerClass:'',
				// more参数
				hideMore:true,
				//表情定义
				hideEmoji:true,
				emojiList,
				onlineEmoji,
				// 请求历史数据
				queryList:[],
				customId: null, // 生成id,
				pageNum:1,
				pageSize:5,
				person:false,
				pullTip:true,
				triggered: false,
			    _triggered: false
			};
		},
		onLoad(option) {
			// this.customId = randomeId()
			// this.getMsgList() //初次进入获取历史记录
			//语音自然播放结束
			this.AUDIO.onEnded((res)=>{
				this.playMsgid=null;
			});
			// #ifndef H5
			//录音开始事件
			this.RECORDER.onStart((e)=>{
				this.recordBegin(e);
			})
			//录音结束事件
			this.RECORDER.onStop((e)=>{
				this.recordEnd(e);
			})
			// #endif
		},
		watch:{
			person(newVal){
				if(newVal&& this.customId) {
					this.creatBigMeeting() 
					// this.getMsgList()
				}  
			}
		},
		onShow(){
			this.scrollTop = 9999999;
		},
         beforeDestroy(){
			 let params = {
			 	contentType:'0x29',
			 	content: '用户退出了页面'
			 }
			 if(this.socketTask && this.socketTask.close){
				wsSend(this.socketTask,params)
				this.socketTask.close() 
			 }
		 },
		methods:{
			popupClick(){
				 console.log('122')
			},
			personEnter(){
				this.person = true
			},
			pullrefresh(){
			if (this._triggered) {
					return;
				}
				this._triggered = true;
				//界面下拉触发，triggered可能不是true，要设为true
				if (!this.triggered) {
					this.triggered = true;
				}
				this.loadHistory()		
			},
			refresherrestore(){
				this.triggered = false;
				this._triggered = false;
			},
			refresherabort(){
				this.triggered = false;
				this._triggered = false;
			},
			setId(){
				if(this.$refs.idInput.cachedValue){
					this.customId = this.$refs.idInput.cachedValue
					this.idInput = true
				}
			},
			setTimeout(){
				if(this.$refs.timeoutInput.cachedValue){
					this.keepTime = Number(this.$refs.timeoutInput.cachedValue)
				}
			},
			// 接受消息(筛选处理)
			screenMsg(msg){
				//从长连接处转发给这个方法，进行筛选处理
				if(msg.type=='system'){
					// 系统消息
					switch (msg.msg.type){
						case 'text':
							this.addSystemTextMsg(msg);
							break;
						case 'redEnvelope':
							this.addSystemRedEnvelopeMsg(msg);
							break;
					}
				}else if(msg.type=='user'){
					// 用户消息
					switch (msg.msg.type){
						case 'text':
							this.addTextMsg(msg);
							break;
						case 'voice':
							this.addVoiceMsg(msg);
							break;
						case 'img':
							this.addImgMsg(msg);
							break;
						case 'redEnvelope':
							this.addRedEnvelopeMsg(msg);
							break;
					}
					//非自己的消息震动
					if(msg.msg.userinfo.uid!=this.customId){
						console.log('振动');
						uni.vibrateLong();
					}
				}
				this.$nextTick(()=> {
					// 滚动到底
					this.scrollToView = 'msg'+msg.msg.id
				});
			},
			// 获取历史记录
			async getHistory() {
				if(!this.customId){
				   return 	
				}
				const [start,end] = recoderTimeformat(new Date())
				const params = {
					talker: this.customId,
					pageNum:this.pageNum,
					pageSize:this.pageSize,
					startTime: start,
					endTime: end,
				}
				this.showLoading = true
				await queryChat(params).then(res => {
				        const historyList = res.data.list
			            this.queryList = []
						this.pageSize += 5
						if(this.pageSize >= res.data.total){
							this.pageSize = res.data.total
						}
					    historyList.forEach((item) => {
							const params = {
								id:item.id,
								type:'user',
								uid: item.talker,
								time:item.serverTime
							}
							if(item.contentType === "0x41"){
								this.queryList.push(messageBody({...params,content:{text:item.content},talkType:'text'}))
							}
							if(item.contentType == "0x45"){
								this.queryList.push(messageBody({...params,content:{url:item.content},talkType:'img'}))
							}
							if(item.contentType == "0x42"){
								this.queryList.push(messageBody({...params,content:{url:item.content},talkType:'voice'}))
							}
					    })
				      }).catch(err => {
					    throw new Error(`历史记录接口异常${err}`)
				      }).finally(()=>{
					    this.showLoading = false
						this.triggered = false
						this.pullTip = false
				})
			},
			
			//触发滑动到顶部(加载历史信息记录)
		   async loadHistory(e){
				if(this.isHistoryLoading){
					return ;
				}
				this.isHistoryLoading = true;//参数作为进入请求标识，防止重复请求
				this.scrollAnimation = false;//关闭滑动动画
				let Viewid = this.msgList[0] ? this.msgList[0].msg.id :'';//记住第一个信息ID
				await this.getHistory() 
				// 消息列表
				let list = deepClone(this.queryList)
				this.msgList = []
				// 获取消息中的图片,并处理显示尺寸
				for(let i=0;i<list.length;i++){
					if(list[i].type=='user'&&list[i].msg.type=="img"){
						list[i].msg.content = this.setPicSize(list[i].msg.content);
						this.msgImgList.unshift(list[i].msg.content.url);
					}
					this.msgList.unshift(list[i]);
				}
				this.isHistoryLoading = false;//参数作为进入请求标识，防止重复请求
				//这段代码很重要，不然每次加载历史数据都会跳到顶部
				this.$nextTick(function() {
					this.scrollToView = 'msg'+Viewid;//跳转上次的第一行信息位置
					this.$nextTick(function() {
						this.scrollAnimation = true;//恢复滚动动画
					});
					
				});
			},
			// 加载初始页面消息
			getMsgList(){
				if(!this.customId){
				   return 	
				}
				const [start,end] = recoderTimeformat(new Date())
				const params = {
					talker:this.customId,
					pageNum:this.pageNum,
					pageSize:this.pageSize,
					startTime: start,
					endTime: end,
				}
				queryChat(params).then(res => {
					const historyList = res.data.list 
				    this.queryList = []
					if(!(historyList instanceof Array)) {
						return 
					}
					this.pageSize += 5
					if(this.pageSize >= res.data.total){
						this.pageSize = res.data.total
					}
					historyList.forEach((item) => {
						const params = {
							id:item.id,
							type:'user',
							uid: item.talker,
		                    time:item.serverTime
						}
						if(item.contentType === "0x41"){
							this.queryList.push(messageBody({...params,content:{text:item.content},talkType:'text'}))
						}
						if(item.contentType == "0x45"){
							this.queryList.push(messageBody({...params,content:{url:item.content},talkType:'img'}))
						}
						if(item.contentType == "0x42"){
							this.queryList.push(messageBody({...params,content:{url:item.content},talkType:'voice'}))
						}
					})
					let list = deepClone(this.queryList)
					// 获取消息中的图片,并处理显示尺寸
					for(let i=0;i<list.length;i++){
						if(list[i].type=='user'&&list[i].msg.type=="img"){
							list[i].msg.content = this.setPicSize(list[i].msg.content);
							this.msgImgList.push(list[i].msg.content.url);
						}
						this.msgList.unshift(list[i]);
					}
					// 滚动到底部
					this.$nextTick(function() {
						//进入页面滚动到底部
						this.scrollTop = 9999;
						this.$nextTick(()=>{
							this.scrollAnimation = true;
						});
						
					});
				}).catch(err => {
					throw new Error(`创建大会场接口异常${err}`)
				}).finally(()=>{
					this.isHistoryLoading = false
				})
			},
			//处理图片尺寸，如果不处理宽高，新进入页面加载图片时候会闪
			setPicSize(content){
				// 让图片最长边等于设置的最大长度，短边等比例缩小，图片控件真实改变，区别于aspectFit方式。
				let maxW = uni.upx2px(350);//350是定义消息图片最大宽度
				let maxH = uni.upx2px(350);//350是定义消息图片最大高度
				if(content.w>maxW||content.h>maxH){
					let scale = content.w/content.h;
					content.w = scale>1?maxW:maxH*scale;
					content.h = scale>1?maxW/scale:maxH;
				}
				return content;
			},
			
			//更多功能(点击+弹出) 
			showMore(){
				this.isVoice = false;
				this.hideEmoji = true;
				if(this.hideMore){
					this.hideMore = false;
					this.openDrawer();
				}else{
					this.hideDrawer();
				}
			},
			// 打开抽屉
			openDrawer(){
				this.popupLayerClass = 'showLayer';
			},
			// 隐藏抽屉
			hideDrawer(){
				this.popupLayerClass = '';
				setTimeout(()=>{
					this.hideMore = true;
					this.hideEmoji = true;
				},150);
			},
			// 选择图片发送
			chooseImage(){
				this.getImage('album');
			},
			//拍照发送
			camera(){
				this.getImage('camera');
			},
			//发红包
			handRedEnvelopes(){
				uni.navigateTo({
					url:'HM-hand/HM-hand'
				});
				this.hideDrawer();
			},
			//选照片 or 拍照
			getImage(type){
				this.hideDrawer();
				uni.chooseImage({
					sourceType:[type],//选照片 or 拍照
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
					success: (res)=>{
						for(let i=0;i<res.tempFilePaths.length;i++){
							uni.getImageInfo({
								src: res.tempFilePaths[i],
								success: (image)=>{
									console.log(image.width);
									console.log(image.height);
									// 上传至服务器
									let data = {
										meetingId: this.meetingId,
										memberId: this.customId,
										waiterId: this.waiterId,
										contentType: 12,
										content: ''
									}
									const params = JSON.stringify(msgBody(data))
									netUploadFile(res.tempFilePaths[i],{body:params}).then((res)=>{
										console.log('最终',res)
										const {data} = res
										let msg = {url:data,w:image.width,h:image.height};
										
										this.sendMsg(msg,'img');
									}).catch(err=>{
										console.log('上传图片接口异常',err)
									})
								}
							});
						}
					}
				});
			},
			// 选择表情
			chooseEmoji(){
				this.hideMore = true;
				if(this.hideEmoji){
					this.hideEmoji = false;
					this.openDrawer();
				}else{
					this.hideDrawer();
				}
			},
			//添加表情
			addEmoji(em){
				this.textMsg+=em.alt;
			},
			
			//获取焦点，如果不是选表情ing,则关闭抽屉
			textareaFocus(){
				if(this.popupLayerClass=='showLayer' && this.hideMore == false){
					this.hideDrawer();
				}
			},
			// 发送文字消息
			sendText(){
				this.hideDrawer();//隐藏抽屉
				if(!this.textMsg){
					return;
				}
				// let content = this.replaceEmoji(this.textMsg);
				let content = this.textMsg
				let msg = {text:content}
				this.sendMsg(msg,'text');
				this.textMsg = '';//清空输入框
			},
			//替换表情符号为图片
			replaceEmoji(str){
				let replacedStr = str.replace(/\[([^(\]|\[)]*)\]/g,(item, index)=>{
					console.log("item: " + item);
					for(let i=0;i<this.emojiList.length;i++){
						let row = this.emojiList[i];
						for(let j=0;j<row.length;j++){
							let EM = row[j];
							if(EM.alt==item){
								//在线表情路径，图文混排必须使用网络路径，请上传一份表情到你的服务器后再替换此路径 
								//比如你上传服务器后，你的100.gif路径为https://www.xxx.com/emoji/100.gif 则替换onlinePath填写为https://www.xxx.com/emoji/
								let onlinePath = 'https://s2.ax1x.com/2019/04/12/'
								let imgstr = '<img src="'+onlinePath+this.onlineEmoji[EM.url]+'">';
								console.log("imgstr: " + imgstr);
								return imgstr;
							}
						}
					}
				});
				return '<div style="display: flex;align-items: center;word-wrap:break-word;">'+replacedStr+'</div>';
			},
			
			// 发送消息
			sendMsg(content,type){	// type="text|img|voice"
			   let contentType = ''
			   if (type === 'text') contentType = '0x40'
			   if (type === 'img') contentType = '0x44'
				// 发送消息
				let params = {
					contentType,
					content: content.url || content.text
				}
				if(this.wsOpen){
					wsSend(this.socketTask,params) //小会场
				}else{
				    wsSend(this.bigSocketTask,params)	//主会场
				}
				//窗口消息显示
				// const showData = messageBody(this.customId,'user',content,type)
				// this.screenMsg(showData);
			    },
			// 添加文字消息到列表
			addTextMsg(msg){
				console.log('添加消息',msg)
				this.msgList.push(msg);
			},
			// 添加语音消息到列表
			addVoiceMsg(msg){
				this.msgList.push(msg);
			},
			// 添加图片消息到列表
			addImgMsg(msg){
				msg.msg.content = this.setPicSize(msg.msg.content);
				this.msgImgList.push(msg.msg.content.url);
				this.msgList.push(msg);
			},
			addRedEnvelopeMsg(msg){
				this.msgList.push(msg);
			},
			// 添加系统文字消息到列表
			addSystemTextMsg(msg){
				this.msgList.push(msg);
			},
			sendSystemMsg(content,type){
				let lastid = this.msgList[this.msgList.length-1].msg.id;
				lastid++;
				let row = {type:"system",msg:{id:lastid,type:type,content:content}};
				// this.screenMsg(row)
			},
			// 预览图片
			showPic(msg){
				uni.previewImage({
					indicator:"none",
					current:msg.content.url,
					urls: this.msgImgList
				});
			},
			// 播放语音
			playVoice(msg){
				this.playMsgid=msg.id;
				this.AUDIO.src = msg.content.url;
				this.$nextTick(function() {
					this.AUDIO.play();
				});
			},
			// 录音开始
			voiceBegin(e){
				if(e.touches.length>1){
					return ;
				}
				this.initPoint.Y = e.touches[0].clientY;
				this.initPoint.identifier = e.touches[0].identifier;
				this.RECORDER.start({format:"mp3"});//录音开始,
			},
			//录音开始UI效果
			recordBegin(e){
				this.recording = true;
				this.voiceTis='松开 结束';
				this.recordLength = 0;
				this.recordTimer = setInterval(()=>{
					this.recordLength++;
				},1000)
			},
			// 录音被打断
			voiceCancel(){
				this.recording = false;
				this.voiceTis='按住 说话';
				this.recordTis = '手指上滑 取消发送'
				this.willStop = true;//不发送录音
				// #ifndef H5
				this.RECORDER.stop();//录音结束
				// #endif
				
				// #ifdef H5
				stopRecord()
				// #endif
			},
			// 录音中(判断是否触发上滑取消发送)
			voiceIng(e){
				if(!this.recording){
					return;
				}
				let touche = e.touches[0];
				//上滑一个导航栏的高度触发上滑取消发送
				if(this.initPoint.Y - touche.clientY>=uni.upx2px(100)){
					this.willStop = true;
					this.recordTis = '松开手指 取消发送'
				}else{
					this.willStop = false;
					this.recordTis = '手指上滑 取消发送'
				}
			},
			// 结束录音
			voiceEnd(e){
				if(!this.recording){
					return;
				}
				this.recording = false;
				this.voiceTis='按住 说话';
				this.recordTis = '手指上滑 取消发送'
				this.RECORDER.stop();//录音结束
				
			},
			//录音结束(回调文件)
			recordEnd(e){
				clearInterval(this.recordTimer);
				if(!this.willStop){
					console.log("e: " + JSON.stringify(e));
					let msg = {
						length:0,
						url:e.tempFilePath
					}
					let min = parseInt(this.recordLength/60);
					let sec = this.recordLength%60;
					min = min<10?'0'+min:min;
					sec = sec<10?'0'+sec:sec;
					msg.length = min+':'+sec;
					this.sendMsg(msg,'voice');
				}else{
					console.log('取消发送录音');
				}
				this.willStop = false;
			},
			// 切换语音/文字输入
			switchVoice(){
				this.hideDrawer();
				this.isVoice = this.isVoice?false:true;
			},
			discard(){
				return;
			},
			/*h5原生对象调用录音*/
			 h5VoiceBegin(e){
				 if(e.touches.length>1){
				 	return ;
				 }
				 this.initPoint.Y = e.touches[0].clientY;
				 this.initPoint.identifier = e.touches[0].identifier;
				 // this.RECORDER.start({format:"mp3"});//录音开始,
				 oldRecord(this.recordBegin)
			 },
			 h5VoiceEnd(){
				 if(!this.recording){
				 	return;
				 }
				 this.recording = false;
				 this.voiceTis='按住 说话';
				 this.recordTis = '手指上滑 取消发送'
				 // this.RECORDER.stop();//录音结束
				 stopRecord()
			 }, 
			popupClose(){
				
			},
			popupConfirm(done){
			done()	
			}	 
			 
			  // 继续
		}
	}
</script>
<style lang="scss">
	@import "@/static/HM-chat/css/style.scss"; 
	.user-id{
		text-align: center;
		font-size: 24upx;
		color: blue;
	}
	.person-btn{
		position: absolute;
		bottom: 10upx;
		right: 10upx;
		padding:4upx;
		border-radius: 6upx;
		font-size: 24upx;
		background-color:#ccc ;
	}
	.pull-tip{
		width: 100%;
		font-size: 24upx;
		text-align: center;
		padding-top:10upx
	}
</style>
